Skip to main content

Objeto: Interfaz

Símbolo: _cds_icon_interface.png

Palabra clave: INTERFACE

Una interfaz es un medio de programación orientada a objetos. El objeto ITF describe un conjunto de métodos y prototipos de propiedades. En este contexto, prototipo significa que el métodos y propiedades contienen sólo declaraciones y ninguna implementación.

Esto permite que diferentes bloques de funciones que tienen propiedades comunes se utilicen de la misma manera. Un ITF el objeto se agrega a la aplicación o al proyecto haciendo clic en Proyecto → Agregar objeto → Interfaz

Para más información, ver: Implementar una interfaz

tabla 58. Agregar una interfaz

Herencia

Nombre

Nombre de la interfaz

Avanzado

standard icon: Amplía la interfaz que selecciona en el campo de entrada o a través del Asistente de entrada _cds_icon_three_dots.png. Esto significa que todos los métodos de la interfaz que amplían la nueva interfaz también están disponibles en la nueva interfaz.

Para más información, ver: Ampliar una interfaz



Sugerencia

Se admite la herencia múltiple para las interfaces.

Puedes agregar el Propiedad de interfaz y Método de interfaz objetos a la ITF objeto. Los métodos de interfaz pueden contener solo las declaraciones de variables de entrada, salida y VAR_IN_OUT, pero ninguna implementación.

Para que también pueda usar una interfaz en el programa, debe haber un bloque de funciones que implemente esta interfaz.

Esto significa:

  • El bloque de funciones contiene la interfaz en su lista IMPLEMENTS en su parte de declaración

  • El bloque de funciones contiene una implementación para todos los métodos y prototipos de propiedades de la interfaz.

Un bloque de funciones puede implementar una o más interfaces. Puede usar el mismo método con parámetros idénticos, pero un código de implementación diferente en diferentes bloques de funciones.

. Tenga en cuenta lo siguiente:
  • No debe definir variables dentro de una interfaz. Una interfaz no tiene parte de implementación ni acciones. Solo se define una colección de métodos, en la que puede definir solo variables de entrada, salida y VAR_IN_OUT.

  • CODESYS siempre trata las variables declaradas con el tipo de una interfaz como referencias.

  • Un bloque de funciones que implementa una interfaz debe contener código de implementación para los métodos de la interfaz. Ha nombrado los métodos exactamente como en la interfaz y los métodos contienen las mismas variables de entrada, salida y VAR_IN_OUT que en la interfaz.

Referencias de interfaz y cambio en línea

Lo siguiente puede suceder con una versión del compilador < 3.4.1.0:

Si un bloque de funciones cambia sus datos porque se agregan o eliminan variables, o porque cambia el tipo de variables, entonces CODESYS copia todas las instancias del bloque de funciones en una nueva ubicación de memoria. En este caso, sin embargo, una referencia de interfaz no se refiere a la nueva ubicación de memoria, sino a la anterior.

En caso de versiones del compilador >= 3.4.1.0, CODESYS automáticamente redirecciona las referencias de la interfaz para que CODESYS también hace referencia a la interfaz correcta en caso de un cambio en línea. CODESYS requiere código adicional y más tiempo para esto, por lo que pueden ocurrir problemas de inestabilidad dependiendo de la cantidad de objetos involucrados. Por lo tanto, CODESYS muestra el número de variables y referencias de interfaz involucradas antes de la ejecución del cambio en línea y luego puede decidir si el cambio en línea debe ejecutarse o cancelarse.

ejemplo 516. Ejemplo

Definición de una interfaz y su uso en un bloque de funciones

Ha insertado la interfaz ITF debajo de la aplicación. La interfaz contiene los métodos. Método 1 y Método2. ITF, Método 1 y Método2 no contienen código de implementación. Inserte las declaraciones de variables requeridas solo en la parte de declaración de los métodos.

Si posteriormente inserta un bloque de funciones en el árbol de dispositivos que implementa la interfaz ITF, CODESYS automáticamente también inserta los métodos Método 1 y Método2 bajo el bloque de funciones. Aquí puede implementar código específico del bloque de función en los métodos.

_cds_img_itf_method.png